import { EvaluateOptions, Expression } from "../types";
import { EndpointError } from "../types";
import { evaluateExpression } from "./evaluateExpression";
import { url } from "@kit.ArkTS";

export const getEndpointUrl = (endpointUrl: Expression, options: EvaluateOptions): url.URL => {
  const expression = evaluateExpression(endpointUrl, "Endpoint URL", options);
  if (typeof expression === "string") {
    try {
      return url.URL.parseURL(expression);
    } catch (error) {
      console.error(`Failed to construct URL with ${expression}`, error);
      throw error;
    }
  }
  throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);
};
